#pragma once

#include <BWAPI.h>

class BPUnit{
public:
	BWAPI::Unit *m_BWAPIUnit;
	double m_groundDPF;
	double m_HP;
	double m_groundDPFPerHP;
	BPUnit(
		BWAPI::Unit *u
	);
	bool operator<(const BPUnit &rhs) const { return m_groundDPFPerHP < rhs.m_groundDPFPerHP; }
};

class BattlePredictor{
	std::vector<BPUnit> m_units;
	std::vector<BPUnit> m_enemyUnits;
	void simulationStep(
		std::vector<BPUnit> &myUnits,
		std::vector<BPUnit> &enemyUnits
	) const;
public:
	BattlePredictor();
	void addUnit(
		BWAPI::Unit *u
	);
	void runSimulation();
};